import java.util.LinkedList;
import java.util.List;

/**
 *leetcode:两数相加
 * https://leetcode.cn/problems/add-two-numbers/solution/
 */

class Solution2 {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode head=null;
        ListNode tail=null;
        int sum=0;
        int pre=0;
        while(l1!=null&&l2!=null){
            sum=l1.val+l2.val+pre;
            if(head==null){
                head=new ListNode(sum%10);
                tail=head;
            }
            else{
                tail.next=new ListNode(sum%10);
                tail=tail.next;
            }
            if(sum>=10){
                pre=1;
            }else{
                pre=0;
            }
            l1=l1.next;
            l2=l2.next;
        }
        while(l1!=null&&l2==null){
            sum=l1.val+pre;
            tail.next=new ListNode(sum%10);
            tail=tail.next;
            if(sum>=10){
                pre=1;
            }else{
                pre=0;
            }
            l1=l1.next;
        }
        while(l1==null&&l2!=null){
            sum=l2.val+pre;
            tail.next=new ListNode(sum%10);
            tail=tail.next;
            if(sum>=10){
                pre=1;
            }else{
                pre=0;
            }
            l2=l2.next;
        }
        if(pre==1){
            tail.next=new ListNode(1);
        }
        return head;
    }

    public static void main(String[] args) {
        Solution2 solution2=new Solution2();
        ListNode l1=new ListNode();
        l1.add(9,l1);
        l1.add(9,l1);
        l1.add(9,l1);
        l1.add(9,l1);
        ListNode l2=new ListNode();
        l2.add(9,l2);
        l2.add(9,l2);
        l2.add(9,l2);
        l2.add(9,l2);
        l2.add(9,l2);
        l2.add(9,l2);
        l2.add(9,l2);
        solution2.addTwoNumbers(l1.next,l2.next);
        List<Integer> ret=new LinkedList<>();
        int[][] arr=new int[3][4];
        System.out.println(arr[1].length);
    }
}